<?php	namespace Home\Controller;
use Hdphp\Controller\Controller;
/**
 * 登陆注册管理控制器
 * @author  武斌    <wubin.mail@foxmail.com>
 */
class PublicController extends Controller
{
	protected $db;
	public function __init()
	{	//实例化User模型
		$this->db = new \Home\Model\User;
	}
	/**
	 * 注册功能
	 */
	public function reg()
	{
		if(IS_POST)
		{	//执行模型中的reg方法
			if(!$this->db->reg())
			{	//登陆失败，给出错误提示信息
				View::error($this->db->getError());
			}
			//登陆成功，提示成功信息，跳转到登陆页面
			View::success('注册成功',U('Home/Public/login'));
		}
		//载入模板
		View::make(TEMPLATE . '/reg.html');
	}
	/**
	 * 登陆
	 */
	public function login()
	{
		if(IS_POST)
		{	//执行User模型中的登陆方法（login）
			if(!$userInfo = $this->db->login())
			{	//登陆失败，提示错误信息
				View::error($this->db->getError());
			}
			//账号被锁定，提示锁定信息
			if($userInfo['is_lock'] == 1){
				$this->error('您的账号已被锁定,请与管理员联系');
			}
			//登陆成功之后将用户id和用户名存入到session中
			$_SESSION['uid']=$userInfo['uid'];
			$_SESSION['username']=$userInfo['username'];
			//登陆成功跳转到前台首页
			View::success('登陆成功',U('Index/index'));		
		}
		//载入登陆模板
		View::make(TEMPLATE . '/login.html');
	}
	/**
	 * 注册异步检测用户名是否存在
	 */
	public function checkRegUser()
	{
		if(!IS_AJAX)  $this->error('非法请求');
		//用户名已存在，不允许注册
		if($this->db->where('username',$_POST['username'])->first())
		{
			View::ajax(array('message'=>'用户名已存在','status'=>0));
		}else//用户名不存在，可以进行注册
		{
			View::ajax(array('message'=>'用户名可用','status'=>1));
		}
	}
	/**
	 * 注册异步检测验证码是否正确
	 */
	public function checkRegCode()
	{
		if(!IS_AJAX)  $this->error('非法请求');
		//验证码正确，异步返回正确信息
		if($_SESSION['code']==strtoupper($_POST['code']))
		{
			View::ajax(array('message'=>'验证码正确','status'=>1));
		}
		//验证码不正确，异步返回错误信息
		View::ajax(array('message'=>'验证码错误','status'=>0));
	}
	/**
	 * 显示验证码
	 */
	public function code()
	{
		Code::make();
	}
	/**
	 * 退出登录
	 */
	public function out()
	{	//清除session
		session_unset();
		session_destroy();
		//提示退出成功信息
		View::success('退出成功');
	}
}
